# lambda
# 当一个函数只有一个反回值是，可以写成lambda表达式形式，可以节省代码量和内存空间
# 函数
# def add(a, b):
#     return a + b
#
#
# print(add(1, 2))

# 表达式名       # 参数列表：返回表达式
# func1 = lambda a, b: a + b
#
# print(func1(1, 3))

# 无参
# func2 = lambda: 100
# print(func2())

# 一个参数
# func2 = lambda a: a
# print(func2("hello world"))

# 默认参数
# func2 = lambda a, b, c=200: a+b+c
# print(func2(100, 200))
# 动态参数
# func = lambda *args: args
# print(func(1, 2, 3, 4))
#
# func2 = lambda **kwargs: kwargs
# print(func2(a=100, b=200))

# 带判断的lambda
func = lambda a, b: a if a > b else b
print(func(100, 200))

# 列表内字典排序
lst = [{'name': 1, 'age': 20}, {'name': 2, 'age': 30}, {'name': 0, 'age': 10}]
lst.sort(key=lambda x: x['name'])
print(lst)
lst.sort(key=lambda x: x['age'], reverse=True)
print(lst)
